| Total Complexity | 4 |
| Total Lines | 30 |
| Duplicated Lines | 0 % |
| Changes | 0 | ||
| 1 | /* eslint-disable promise/prefer-await-to-callbacks */ |
||
| 8 | export default class Console extends Transport { |
||
| 9 | constructor(options = {}) { |
||
| 10 | super(options); |
||
| 11 | this.name = options.name || 'console'; |
||
| 12 | this.eol = options.eol || os.EOL; |
||
| 13 | this.logger = options.logger || console; |
||
| 14 | this.fallBackLogger = options.fallBackLogger || defaultLogger; |
||
| 15 | this.handlers = options.levels || {}; |
||
| 16 | this.sanitizer = options.sanitizer || defaultSanitizer; |
||
| 17 | this.setMaxListeners(options.maxListeners || defaultMaxListeners); |
||
| 18 | } |
||
| 19 | |||
| 20 | log(info, callback) { |
||
| 21 | setImmediate(() => { |
||
| 22 | this.emit('logged', info); |
||
| 23 | }); |
||
| 24 | const level = info[LEVEL]; |
||
| 25 | const message = info[MESSAGE]; |
||
| 26 | |||
| 27 | const log = [ |
||
| 28 | this.handlers[level], |
||
| 29 | this.logger[this.handlers[level]], |
||
| 30 | this.logger[level], |
||
| 31 | this.fallBackLogger |
||
| 32 | ].find((element) => isLoggable(element)); |
||
| 33 | |||
| 34 | log(this.sanitizer(message)); |
||
| 35 | callback(); |
||
| 36 | } |
||
| 37 | } |
||
| 38 |